package cn.iocoder.yudao.module.eval.controller.admin.candidate.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import javax.validation.constraints.*;

/**
 * 参评人员材料 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class EvalCandidateMaterialBaseVO {

    @Schema(description = "参评人员ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "参评人员ID不能为空")
    private Long candidateInfoId;

    @Schema(description = "材料类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "材料类型不能为空")
    private Integer materialType;

    @Schema(description = "材料名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "身份证")
    @NotBlank(message = "材料名称不能为空")
    @Size(max = 100, message = "材料名称长度不能超过100个字符")
    private String materialName;

    @Schema(description = "文件路径", requiredMode = Schema.RequiredMode.REQUIRED, example = "/upload/materials/idcard.jpg")
    @NotBlank(message = "文件路径不能为空")
    @Size(max = 500, message = "文件路径长度不能超过500个字符")
    private String filePath;

    @Schema(description = "文件名", requiredMode = Schema.RequiredMode.REQUIRED, example = "身份证.jpg")
    @NotBlank(message = "文件名不能为空")
    @Size(max = 255, message = "文件名长度不能超过255个字符")
    private String fileName;

    @Schema(description = "文件大小", example = "1024")
    private Long fileSize;

    @Schema(description = "文件类型", example = "image/jpeg")
    @Size(max = 100, message = "文件类型长度不能超过100个字符")
    private String fileType;

    @Schema(description = "材料状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "材料状态不能为空")
    private Integer materialStatus;

    @Schema(description = "审核状态", example = "1")
    private Integer auditStatus;

    @Schema(description = "材料描述", example = "身份证正反面照片")
    @Size(max = 500, message = "材料描述长度不能超过500个字符")
    private String materialDescription;

    @Schema(description = "是否必需", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
    @NotNull(message = "是否必需不能为空")
    private Boolean isRequired;

    @Schema(description = "排序", example = "1")
    private Integer sortOrder;

}
